package com.ruoyi.combat.service.camera;

import com.ruoyi.combat.domain.camera.CombatCameraGeo;
import com.ruoyi.combat.domain.camera.CombatCameraGeoResult;
import com.ruoyi.combat.domain.camera.CombatCameraInfo;
import com.ruoyi.common.core.domain.entity.SysUser;

import java.util.List;
import java.util.Map;

/**
 * 摄像头信息Service接口
 *
 * @author ruoyi
 * @date 2025-01-08
 */
public interface ICombatCameraInfoService {
    /**
     * 查询摄像头信息
     *
     * @param id 摄像头信息主键
     * @return 摄像头信息
     */
    public CombatCameraInfo selectCombatCameraInfoById(Long id);

    /**
     * 查询摄像头信息列表
     *
     * @param combatCameraInfo 摄像头信息
     * @return 摄像头信息集合
     */
    public List<CombatCameraInfo> selectCombatCameraInfoList(CombatCameraInfo combatCameraInfo);

    /**
     * 新增摄像头信息
     *
     * @param combatCameraInfo 摄像头信息
     * @return 结果
     */
    public int insertCombatCameraInfo(CombatCameraInfo combatCameraInfo);

    /**
     * 修改摄像头信息
     *
     * @param combatCameraInfo 摄像头信息
     * @return 结果
     */
    public int updateCombatCameraInfo(CombatCameraInfo combatCameraInfo);

    /**
     * 批量删除摄像头信息
     *
     * @param ids 需要删除的摄像头信息主键集合
     * @return 结果
     */
    public int deleteCombatCameraInfoByIds(Long[] ids);

    /**
     * 删除摄像头信息信息
     *
     * @param id 摄像头信息主键
     * @return 结果
     */
    public int deleteCombatCameraInfoById(Long id);

    public Map getGraphByCameraInfo(CombatCameraInfo info);

    public Map getGraphByCameraInfoNew(CombatCameraInfo info);

    List<Map> getloopholeType();

    List<Map> getCameraArea();

    Map getCameraNum();
    List<CombatCameraGeoResult> getCameraAddress(Long id);

    /**
     * 导入用户数据
     *
     * @param list 数据列表
     * @param isUpdateSupport 是否更新支持，如果已存在，则进行更新数据
     * @param operName 操作用户
     * @return 结果
     */
    public String importCombatCameraInfo(List<CombatCameraInfo> list, Boolean isUpdateSupport, String operName);

    List<Map> getCameraBrand();
}
